#ifndef E300_CONFIG_H
#define E300_CONFIG_H

#include <QObject>


typedef enum
{
    xin_hong_qian_pai_addr = 0x30,
    xin_hong_ce_pai_addr,
    xin_hong_wei_pai_addr
} my_addr;
typedef enum
{
    HOST_NONE = 0,
    HOST_HISSEN,
    HOST_TONGDA,
    HOST_HAIKANG,
    HOST_RUIMING,
    HOST_KAILUN
} host_type;

typedef enum
{
    HOST_AD_PROGRAM = 0x00,
    LINE_PROGRAM = 0x01,
    NO_WORK_PROGRAM,
    LEFT_PROGRAM,
    RIGHT_PROGRAM,
    STOP_PROGRAM,
    DOUBLE_PROGRAM
} programs_id_type;

typedef enum
{
    shui_ping_left = 0,
    shui_ping_mid,
    shui_ping_right
}shui_ping_show_type;

typedef enum
{
    chui_zhi_top = 0,
    chui_zhi_mid,
    chui_zhi_below
}chui_zhi_show_type;

typedef enum
{
    MOVE_STATIC = 0,
    MOVE_LEFT,
    MOVE_RIGHT,
    MOVE_LEFT_CONTINUE,  // 连续左移
    MOVE_RIGHT_CONTINUE, // 连续右移
} move_direction;

#pragma pack(push) //保存对齐状态
#pragma pack(1)//设定为1字节对齐

typedef struct
{
    quint16 item_length;
    quint8 effect;
    quint8 exit;
    quint8 message_type;
    quint8 x_move;
    quint8 text_color[3];
    quint8 backcolor[3];
    quint8 text_font_length;
//    char text_font[20];
    QByteArray text_font;
    quint8 other_font_length;
//    char other_font[20];
    QByteArray other_font;
    quint8 bold;
    quint8 text_size;
    quint8 other_size;
    quint8 play_time;
    quint16 speed;
    quint8 font_gap;
    quint8 shui_ping_type;
    quint8 chui_zhi_type;
    quint8 move_type;
    quint8 save[8];
    uint8_t id;
    quint16 text_length;
} e300_item_t;

typedef struct
{
    quint16 length;
    quint16 min_width;
    quint16 max_width;
    quint8 save[8];
    quint8 item_cnt;
} e300_inside_region_t;

typedef struct
{
    quint16 length;
    quint16 x;
    quint16 y;
    quint16 width;
    quint16 hight;
    quint8 type;
    quint8 save[8];
    quint8 region_cnt;
} e300_region_t;

typedef struct
{
    quint16 lenght;
    quint8 id;
    quint8 show_type;
    quint8 save[8];//预留八个字节
    quint8 region_cnt;
} e300_action_t;


typedef struct
{
    quint8 addr;
    quint16 screen_width;
    quint16 screen_hight;
    quint8 program_id;
    quint8 ad_switch;
    quint8 host_type;
    quint32 boad;
    quint16 line_program_x;
    quint16 line_progtam_y;
    quint16 line_program_width;
    quint16 line_program_hight;
    quint8 save[8];//预留八个字节
    quint8 action_cnt;
    quint8 priority_action[8];//0->7,优先级由高至低
} e300_program_t;
#pragma pack(pop)//恢复对齐状态



class e300_config
{
public:
    e300_config();

    void start();
    QByteArray creat_program();
    QByteArray creat_program_with_more_action();
    QByteArray creat_action();
    QByteArray creat_action_left();
    QByteArray creat_action_right();
    QByteArray creat_action_stop();
    QByteArray creat_action_double();
    QByteArray creat_region(e300_region_t region,e300_item_t item,QString text);
    QByteArray creat_inside_region(e300_inside_region_t region,e300_item_t item,QString text);
    QByteArray creat_item(e300_item_t item,QString text);
    QByteArray get_illegal_words(QString file_patch);

    /*头*/
    QByteArray xin_hong_creat_program_qian();
    QByteArray xin_hong_creat_action();
    //静态区域  起点+线路+终点 id使用  1、2、3
    QByteArray xin_hong_creat_action_2();
    QByteArray xin_hong_creat_action_new();
    //静态区域  全屏显示非营运   id使用 1
    QByteArray xin_hong_creat_action_noWork();


    /*腰*/
    QByteArray xin_hong_creat_program_side();
    //动态区域  线路+箭头+终点      id使用 1、2、3、4
    //         自定义文本
    QByteArray xin_hong_creat_action_256x64();
    QByteArray xin_hong_creat_action_256x64_2();
    //动态区域  线路+箭头+终点
    QByteArray xin_hong_creat_action_side();
    //静态区域 线路+“开往 终点” id使用  1、2
    QByteArray xin_hong_creat_action_side_2();

    /*尾*/
    QByteArray xin_hong_creat_program_wei();
    QByteArray xin_hong_creat_action_wei();
    QByteArray xin_hong_creat_action_left();
    QByteArray xin_hong_creat_action_right();
    QByteArray xin_hong_creat_action_stop();
    QByteArray xin_hong_creat_action_double();


    //静态区域  <<+“左转”  id使用  7、8
    QByteArray xin_hong_creat_action_left_2();
    //静态区域  “右转”+>>  id使用  9,10
    QByteArray xin_hong_creat_action_right_2();
    //静态区域 “刹车”+线路“注意  id使用  4、5、6
    QByteArray xin_hong_creat_action_stop_2();
    //静态区域  <<+>>  id使用  11,12
    QByteArray xin_hong_creat_action_double_2();



    /*产测节目*/
    QByteArray xin_hong_creat_program_test();
    //id使用 13
    QByteArray xin_hong_creat_action_wei_test();
    //id使用 14
    QByteArray xin_hong_creat_action_left_test();
    //id使用 15
    QByteArray xin_hong_creat_action_right_test();
    //id使用 16
    QByteArray xin_hong_creat_action_stop_test();
private:

};

#endif // E300_CONFIG_H
